The present invention relates generally to high-speed communication control systems, and more particularly to a communication control system which is suitable for use in a local area network (LAN) and a method of controlling the same.
Heretofore, communication controllers for connecting high-speed transmission lines, such as a LAN to personal computers and workstations have been classified into intelligent and nonintelligent types based on differences in their structure.
The intelligent type communication controller includes a bus controller for connecting the communication controller to a bus to which a system processor and a memory are connected, a network controller for transmitting and receiving frame data while directly controlling the transmission line, a local processor operating in accordance with a low hierarchical protocol, and a local memory for storing communication data. The communication controller performs processes relative to, for example, an OSI reference model in a second or lower layer as occasion demands and leaves what is in the third layer or higher to the system processor. The transmission line and the system memory are connected via the communication controller and a bus. The frame data is stored first in the local memory within the communication controller before being copied by the system processor into the system memory. In the case of a high-speed LAN having a transmission capacity as great as 100 Mbps with a FDDI (Fiber Distributed Data Interface), for example, the concentrated load which is applied to the bus can therefore be lightened in comparison with the nonintelligent type of communication controller designed to directly transfer such frame data via the bus to the system memory; consequently, resultant underrun and overrun errors can be prevented. Japanese Patent Laid-Open No. 32650/1990, for example, discloses an arrangement as noted above.
The nonintelligent type communication controller, which has no local processor, includes a network controller for transmitting and receiving frame data while directly controlling the transmission line, and a local memory for storing communication data. The network controller performs processes relative to, for example, the OSI reference models in the first layer (physical layer) and 1.5 layer (media access control) in real time in harmony with the transmission speed of the transmission line. The data frame is stored by the network controller first into the local memory before being copied by the system processor into the system memory. Consequently, the nonintelligent type of communication controller exhibits superior performance when compared with the intelligent type to the extent that the low hierarchical layer is processed by the local processor and is made less costly since the local processor is not included therein. This communication controller has been referred to in, for example, "Performance Evaluation for High Speed Protocol Processing At Workstation" 1992. B-433, Kitamura et al, Collection of Papers at Autumn Meeting of Japan Electronic Data Communication Society, and "An Analysis of TCP Processing Overhead," June, 1989, David D. Clark et al, IEEE Communication Magazine.
Notwithstanding, the need for a data copy operation between the system and local memories degrades the performance efficiency in the prior art and data transfer by means of the system processor also imposes a heavier load on the communication controller.
There also arises another problem which occurs even when the communication controller is used instead of the system processor to copy data from the local memory into the system memory. When, for example, the buffer dealt with by the communication controller differs in format from what is dealt with by the protocol program, it is necessary to shift the data to accommodate this difference. Taking signal reception as an example, the communication controller transfers data to the buffer provided in the system memory, the data being formatted by the communication controller itself, and then the data is shifted to the buffer dealt with by the protocol program. The buffer dealt with by the communication controller is what is specifically used for communication controller hardware in which a predetermined size is assigned to a fixed address, whereas the buffer dealt with by the protocol program is such that a memory is effectively utilized by connecting a plurality of small size areas, for example, by means of a chain and varying the number of areas in accordance with a frame length. Consequently, it takes time to effect the buffer-to-buffer transfer of data, thus lowering the performance to a significant extent.
These problems still exist in multi-protocol processing systems for processing a plurality of communication protocols and multi-network control systems for supporting a plurality of networks.